import { createI18n, type I18n } from 'vue-i18n';
import type { App } from 'vue';

import en from './en_US';
import zh from './zh_CN';
import wt from './zh_WT';

const messages = {
    zh_CN: zh,
    en_US: en,
    zh_WT: wt,
};

// 导出实例，以便在 utils 中直接使用
let instance: ReturnType<typeof createI18n> | null = null;

export function getInternalI18n(): any {
    if (!instance) return null;
    return instance;
}

export function init18n(app: App, lang: string) {
    if (getInternalI18n()) {
        console.warn('[i18n] 实例已存在，跳过重复创建');
        return getInternalI18n();
    }
    instance = createI18n({
        legacy: false,
        locale: lang,
        fallbackLocale: 'zh_CN', // 设置备用语言
        messages,
    });

    app.use(instance);
}

export function t(key: string): any {
    if (getInternalI18n()) {
        return getInternalI18n().global.t(key);
    }
}
